body {
  background: linear-gradient(90deg, hsl(199, 98%, 50%), hsl(199, 98%, 38%));
  overflow: hidden;
}

.simulation {
  position: relative;
  width: 30vmin;
  height: 30vmin;
  background: #fff;
  margin: 30vmin auto;
  &::before,&::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: -1;
  }
  &::before {
    transform-origin: 0 50%;
    transform: translate(100%,0) skewY(45deg) scaleX(.6);
    background: linear-gradient(90deg, rgba(0,0,0,.3), transparent);
    animation: shadowMove-y 5s infinite linear alternate;
  }
  &::after {
    transform-origin: 0 0;
    transform: translate(0%, 100%) skewX(45deg) scaleY(.6);
    background: linear-gradient(180deg, rgba(0, 0, 0, .3), transparent);
    animation: shadowMove-x 5s infinite linear alternate;
  }
}

@keyframes shadowMove-x {
    to {
      transform: translate(0%, 100%) skewX(50deg) scaleY(.6);
    }
}

@keyframes shadowMove-y {
  to {
    transform: translate(100%, 0) skewY(40deg) scaleX(.6);
  }
}
